package com.eshore.norm.enumeration;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

/**
 * Project:cmp-euler
 * Package:com.eshore.cmdb.enumeration
 *
 * @author zhangzy
 * @date 2021/2/7 15:31
 */
public enum CmdbResTypeEnums {
    /**
     * 未知云服务
     */
    OTHER(0),
    /**
     * 欧拉
     */
    EULER(1),
    /**
     * H3C
     */
    H3C(2),
    /**
     * VMWARE
     */
    VMWARE(3),
    /**
     * 华为公有云
     */
    HW_PUBLIC(4),
    /**
     * 城智云
     */
    CHENGZHI(5),
    /**
     * 腾讯云
     */
    TENCENT(6),
    /**
     * CAS
     */
    CAS(7),
    /**
     * ZStack云
     */
    ZSTACK(8),

    /**
     * 深信服
     */
    HCL(9),

    /**
     * 品高云
     */
    BINGO(10),

    /**
     * Tstack云
     */
    TSTACK(11),

    /**
     * 阿里云
     */
    ALIYUN(13),

    /**
     * 天翼云
     */
    CTYUN(14),

    /**
     * openstack
     */
    OPENSTACK(15),

    /**
     * norm
     */
    NORM(16);

    @EnumValue
    @JsonValue
    private final int type;

    CmdbResTypeEnums(int type) {
        this.type = type;
    }

    public int getType() {
        return type;
    }

    @JsonCreator
    public static CmdbResTypeEnums valOf(Integer type) {
        if (type == null) {
            return null;
        }

        for (CmdbResTypeEnums value : values()) {
            if (value.type == type) {
                return value;
            }
        }
        return null;
    }
}
